草庐IT

c++ - std::binary_function - 调用不匹配?

全部标签

c++ - 从源代码构建的 Clang 编译 C 但不编译 C++ 代码

我最近在Windows上编译了clang(主机:x86_64-pc-windows64;编译器:i686-pc-mingw32;目标:i686-pc-mingw32)。可以找到CMakeCache(用于配置):here我的问题是,虽然clang工作正常(对于C),但clang++(对于C++)将“成功”编译和链接,但生成的程序本身不会运行并将退出并返回错误代码1。下面是示例(哦-我的-zsh):➜bincattest.c#includeintmain(){printf("HelloWorld!\n");return0;}➜bincattest.cpp#includeintmain(){

c - 获取内核对象窗口列表

嗨!我打赌一个多星期了,我无法形成一个完整的图来说明如何获得内核对象列表。我的算法如下:1)连接NTDLL.dll(LoadLibrary)2)GetProcAddress(variable_Library_name,"NtQueryDirectoryObject")和预告结构:_OBJDIR_INFORMATION,_OBJECT_ATTRIBUTES3)尝试为列表应用NtOpenDirectoryObject函数对象下面是一段代码,负责函数NtOpenDirectoryObject的使用:OBJDIR_INFORMATION*ssinfo=(OBJDIR_INFORMATION*)

c - 套接字文件系统与普通磁盘文件系统

创建套接字后,它会立即创建一个假文件,用于通过网络读取/写入数据,但这个"file"到底是什么?一个普通的磁盘文件将位于磁盘中,任何东西都会被写入那里,但是套接字文件写入到哪里,也许是内存中的字节流? 最佳答案 套接字不会创建“假文件”。它创建一个文件描述符,它是流的系统抽象(好吧,你标记了windows和linux,实现非常依赖于系统)。文件、套接字、管道是经典的Unix流示例。对于套接字流,字节最终将物理写入硬件(内存和/或网卡),对于文件流,字节将物理写入物理驱动器。 关于c-套接

c - Winsock UDP 套接字接收缓冲区利用率

我已经建立了一个UDP套接字:receiveSocket=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);然后我修改套接字参数以使用大于默认缓冲区(例如100,000字节):bufferSize=100000;bufferSizeLen=sizeof(bufferSize);setsockopt(receiveSocket,SOL_SOCKET,SO_RCVBUF,(char*)&bufferSize,bufferSizeLen);稍后,我想查询套接字以了解缓冲区中当前存储了多少数据(即有多少数据报等待通过调用recv()检索).有办法吗?

c - 如何在线程/进程之间可移植地共享变量?

我有一个服务器,它为每个传入请求生成一个新进程或线程,我需要从线程和进程读取和写入在该服务器中定义的变量。由于服务器程序需要同时在UNIX和Windows上运行,我需要以可移植的方式共享变量,但我该怎么做呢?我需要使用标准C库或native系统调用,所以请不要推荐第三方库。 最佳答案 sharedmemory是特定于操作系统的。在Linux上,考虑阅读shm_overview(7)和(因为使用共享内存,你总是需要某种方式来同步)sem_overview(7).当然,您需要找出相似(但可能不等同)的Windows函数调用。注意thre

c# - 调用 Windows 计算器 c#

我用System.Diagnostics.Process.Start("calc");它在本地主机上运行良好,但是当部署项目并且我访问网站并调用计算器时,它不起作用,实际上什么都没有发生。没有错误。我希望计算器能够在客户端计算机上启动。我该怎么做? 最佳答案 出于安全原因,浏览器不允许直接从网站启动进程。您需要编写一个浏览器插件来执行此操作。 关于c#-调用Windows计算器c#,我们在StackOverflow上找到一个类似的问题: https://sta

c++ - 在 CreateProcess 之后调用 GetModuleFileNameEx 时出现 ERROR_INVALID_HANDLE

成功调用CreateProcess后,我尝试使用GetModuleFileNameEx获取创建的进程的路径(lpApplicationName和lpCommandLine参数可以变化或为空,因此在这种情况下它们不可靠)。问题是GetModuleFileNameEx失败并出现错误6(ERROR_INVALID_HANDLE),从而使其缓冲区中包含无效数据。我无法理解原因,因为CreateProcess成功并且进程句柄应该已正确保存在pi.hProcess中。希望您能有所启发,在此先感谢您!编辑:更新:我注意到删除CREATE_SUSPENDED也可以解决此问题,但我需要设置该标志。我该怎

c++ - 与 __stdcall 函数指针声明等价的 clang 是什么?

我有以下函数指针声明:externlong(__stdcall*FooPtr)(int*i);也就是说,一个函数指针指向一个函数,该函数将使用stdcall调用约定(在VS术语中)调用。我怎样才能翻译这个声明让clang理解它? 最佳答案 __attribute__((stdcall))是正确答案:clang支持thefollowinglistofattributes在语法上,它与gcc的非常相似。例如#ifdefined(__clang__)||defined(__GNUC__)#definestdCallConv__attrib

c++ - 从不同线程调用的 XInputGetState 和 XInputSetState

我有一个捕获Controller输入的线程。这是该线程所做的唯一事情-它每x毫秒调用一次XInputGetState()并将结果存储在一个同步的循环缓冲区中。当达到特定条件时,我有另一个线程通过XInputSetState()振动Controller来对此输入使用react。换句话说,一个线程只会调用XInputGetState(),而另一个线程只会调用XInputSetState()。从理论上讲,不可能同时多次调用任一函数。如果没有同步,这样做仍然不安全吗?注意:这两个函数处理完全不同的数据集,但实现最有可能读取/写入不同步的内容。 最佳答案

c - 检测 SD 读卡器是否插入了卡

有谁知道如何使用C中的WindowsApi来检测SD卡读卡器是否插入了卡?平台:windowsxp/visa/7/8。我用谷歌搜索并查看了WindowsAPI文档(我不熟悉它,所以可能错过了很多),但一直找不到答案。我看过这篇文章HowcanIdetectwhenanSDcardispluggedin?-这很接近但没有给我我需要的东西,因为我不想检测状态的变化,而是在查询时它处于什么状态。(如果碰巧有人有这个的Ada实现,那就太棒了,否则我打算只与C链接)谢谢你的帮助马特 最佳答案 我使用WindowsAPI调用GetVolumeI